home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 125 / Computer Shopper CD-ROM Issue 125 (1998-07)(Dennis Publishing).iso / Business / Dazzler / DAZZLER.Z / CEffectThread.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-26  |  8.8 KB  |  725 lines

  1. import java.awt.Graphics;
  2. import java.awt.Image;
  3. import java.awt.Point;
  4. import java.awt.image.ImageObserver;
  5.  
  6. class CEffectThread implements Runnable {
  7.    public static final int north_west = 0;
  8.    public static final int north_east = 1;
  9.    public static final int south_west = 2;
  10.    public static final int south_east = 3;
  11.    public static final int west = 4;
  12.    public static final int east = 5;
  13.    public static final int north = 6;
  14.    public static final int south = 7;
  15.    CRect m_rcDraw = new CRect();
  16.    CDrawObj m_DrawObj;
  17.    CIconObject m_IconObj;
  18.    CEffectData m_EffectData = new CEffectData();
  19.    Thread m_EffectThread;
  20.  
  21.    void DoFlyOnEffect() {
  22.       switch (this.m_EffectData.m_cEffect) {
  23.          case 0:
  24.             this.FlyOn(4);
  25.             return;
  26.          case 1:
  27.             this.FlyOn(5);
  28.             return;
  29.          case 2:
  30.             this.FlyOn(6);
  31.             return;
  32.          case 3:
  33.             this.FlyOn(7);
  34.             return;
  35.          case 4:
  36.             this.FlyOn(0);
  37.             return;
  38.          case 5:
  39.             this.FlyOn(1);
  40.             return;
  41.          case 6:
  42.             this.FlyOn(2);
  43.             return;
  44.          case 7:
  45.             this.FlyOn(3);
  46.             return;
  47.          default:
  48.             System.out.println("ERROR: Illegal transition effect requested");
  49.             this.Reveal();
  50.       }
  51.    }
  52.  
  53.    public void stop() {
  54.       if (this.m_EffectThread != null) {
  55.          this.m_EffectThread.stop();
  56.          this.m_EffectThread = null;
  57.       }
  58.  
  59.    }
  60.  
  61.    void OpenOutHoriz() {
  62.       int var1 = this.m_rcDraw.width / 2;
  63.       int var3 = var1;
  64.       int var4 = 0;
  65.       Graphics var7 = Globals.thePresView.GetDC();
  66.  
  67.       do {
  68.          long var5 = System.currentTimeMillis() + (long)this.m_EffectData.m_cSpeed;
  69.          int var2 = Math.min(var3, this.m_EffectData.m_cStepWidth);
  70.          if (var2 > 0) {
  71.             var3 -= var2;
  72.             Graphics var8 = var7.create();
  73.             var8.clipRect(this.m_rcDraw.x + var3, this.m_rcDraw.y, var2, this.m_rcDraw.height);
  74.             var8.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  75.          }
  76.  
  77.          var2 = Math.min(this.m_rcDraw.width - var1 - var4, this.m_EffectData.m_cStepWidth);
  78.          if (var2 > 0) {
  79.             Graphics var11 = var7.create();
  80.             var11.clipRect(this.m_rcDraw.x + var1 + var4, this.m_rcDraw.y, var2, this.m_rcDraw.height);
  81.             var11.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  82.             var4 += var2;
  83.          }
  84.  
  85.          try {
  86.             Thread.sleep(Math.max(0L, var5 - System.currentTimeMillis()));
  87.          } catch (InterruptedException var9) {
  88.             break;
  89.          }
  90.       } while(var3 > 0 && var4 < this.m_rcDraw.width - var1);
  91.  
  92.       Graphics var12 = var7.create();
  93.       var12.clipRect(this.m_rcDraw.x, this.m_rcDraw.y, this.m_rcDraw.width, this.m_rcDraw.height);
  94.       var12.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  95.    }
  96.  
  97.    void SpiralIn() {
  98.       Graphics var3 = Globals.thePresView.GetDC();
  99.       int var4 = this.m_rcDraw.height / 2 + this.m_EffectData.m_cStepWidth;
  100.       int var5 = this.m_rcDraw.width / 2 + this.m_EffectData.m_cStepWidth;
  101.       int var6 = 0;
  102.  
  103.       for(int var7 = 0; var6 <= var5 && var7 <= var4; var7 += this.m_EffectData.m_cStepWidth) {
  104.          long var1 = System.currentTimeMillis() + (long)this.m_EffectData.m_cSpeed;
  105.          if (var7 <= var4) {
  106.             Graphics var8 = var3.create();
  107.             var8.clipRect(this.m_rcDraw.x, this.m_rcDraw.y + var7, this.m_rcDraw.width, this.m_EffectData.m_cStepWidth);
  108.             var8.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  109.          }
  110.  
  111.          if (var6 <= var5) {
  112.             Graphics var11 = var3.create();
  113.             var11.clipRect(var6 + this.m_rcDraw.x, this.m_rcDraw.y, this.m_EffectData.m_cStepWidth, this.m_rcDraw.height);
  114.             var11.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  115.          }
  116.  
  117.          if (var4 - var7 >= 0) {
  118.             Graphics var12 = var3.create();
  119.             var12.clipRect(this.m_rcDraw.x, this.m_rcDraw.y + this.m_rcDraw.height - var7 - this.m_EffectData.m_cStepWidth, this.m_rcDraw.width, this.m_EffectData.m_cStepWidth);
  120.             var12.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  121.          }
  122.  
  123.          if (var5 - var6 >= 0) {
  124.             Graphics var13 = var3.create();
  125.             var13.clipRect(this.m_rcDraw.x + this.m_rcDraw.width - var6 - this.m_EffectData.m_cStepWidth, this.m_rcDraw.y, this.m_EffectData.m_cStepWidth, this.m_rcDraw.height);
  126.             var13.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  127.          }
  128.  
  129.          try {
  130.             Thread.sleep(Math.max(0L, var1 - System.currentTimeMillis()));
  131.          } catch (InterruptedException var9) {
  132.             break;
  133.          }
  134.  
  135.          var6 += this.m_EffectData.m_cStepWidth;
  136.       }
  137.  
  138.       Graphics var10 = var3.create();
  139.       var10.clipRect(this.m_rcDraw.x, this.m_rcDraw.y, this.m_rcDraw.width, this.m_rcDraw.height);
  140.       var10.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  141.    }
  142.  
  143.    boolean DoEffect() {
  144.       if (this.m_EffectData != null && this.m_EffectData.m_cEffectType > 0) {
  145.          switch (this.m_EffectData.m_cEffectType) {
  146.             case 1:
  147.                this.DoRevealEffect();
  148.                break;
  149.             case 2:
  150.                System.out.println("ERROR: The Java player does not currently support fade effects.");
  151.                this.m_EffectData.m_cEffectType = 0;
  152.                this.DoRevealEffect();
  153.                break;
  154.             case 3:
  155.                System.out.println("ERROR: The Java player does not currently support blend effects.");
  156.                this.m_EffectData.m_cEffectType = 0;
  157.                this.DoRevealEffect();
  158.                break;
  159.             case 4:
  160.                this.DoPushEffect();
  161.                break;
  162.             case 5:
  163.                System.out.println("ERROR: The Java player does not currently support zoom effects.");
  164.                this.m_EffectData.m_cEffectType = 0;
  165.                this.DoRevealEffect();
  166.                break;
  167.             case 6:
  168.                this.DoFlyOnEffect();
  169.                break;
  170.             case 7:
  171.                System.out.println("ERROR: The Java player does not currently support 3D effects.");
  172.                this.m_EffectData.m_cEffectType = 0;
  173.                this.DoRevealEffect();
  174.          }
  175.       }
  176.  
  177.       return false;
  178.    }
  179.  
  180.    void DoRevealEffect() {
  181.       switch (this.m_EffectData.m_cEffect) {
  182.          case 0:
  183.             this.Reveal();
  184.             return;
  185.          case 1:
  186.             this.WipeLeftToRight();
  187.             return;
  188.          case 2:
  189.             this.WipeRightToLeft();
  190.             return;
  191.          case 3:
  192.             this.WipeTopToBottom();
  193.             return;
  194.          case 4:
  195.             this.WipeBottomToTop();
  196.             return;
  197.          case 5:
  198.             this.CloseInHoriz();
  199.             return;
  200.          case 6:
  201.             this.CloseInVert();
  202.             return;
  203.          case 7:
  204.             this.OpenOutHoriz();
  205.             return;
  206.          case 8:
  207.             this.OpenOutVert();
  208.             return;
  209.          case 9:
  210.             this.VerticalBlinds(20);
  211.             return;
  212.          case 10:
  213.             this.HorizontalBlinds(20);
  214.             return;
  215.          case 11:
  216.             this.VerticalBlinds(8);
  217.             return;
  218.          case 12:
  219.             this.HorizontalBlinds(8);
  220.             return;
  221.          case 13:
  222.             this.SpiralIn();
  223.             return;
  224.          case 14:
  225.             this.SpiralOut();
  226.             return;
  227.          case 15:
  228.             System.out.println("ERROR:  The Java player does not currently support the Fade transition.");
  229.             this.Reveal();
  230.             return;
  231.          default:
  232.             System.out.println("ERROR: Illegal transition effect requested");
  233.             this.Reveal();
  234.       }
  235.    }
  236.  
  237.    void VerticalBlinds(int var1) {
  238.       Graphics var5 = Globals.thePresView.GetDC();
  239.       CEffectData var10000 = this.m_EffectData;
  240.       var10000.m_cSpeed = (short)(var10000.m_cSpeed * 2);
  241.       if (var1 < this.m_EffectData.m_cStepWidth * 2) {
  242.          this.m_EffectData.m_cStepWidth = (short)(var1 / 2);
  243.       }
  244.  
  245.       int var6 = this.m_rcDraw.width / var1;
  246.  
  247.       for(int var7 = 0; var7 <= var1; var7 += this.m_EffectData.m_cStepWidth) {
  248.          long var3 = System.currentTimeMillis() + (long)this.m_EffectData.m_cSpeed;
  249.  
  250.          for(int var8 = 0; var8 <= var6; ++var8) {
  251.             int var2 = var8 * var1 + var7 + this.m_rcDraw.x;
  252.             Graphics var9 = var5.create();
  253.             var9.clipRect(var2, this.m_rcDraw.y, this.m_EffectData.m_cStepWidth, this.m_rcDraw.height);
  254.             var9.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  255.          }
  256.  
  257.          try {
  258.             Thread.sleep(Math.max(0L, var3 - System.currentTimeMillis()));
  259.          } catch (InterruptedException var10) {
  260.             break;
  261.          }
  262.       }
  263.  
  264.       Graphics var11 = var5.create();
  265.       var11.clipRect(this.m_rcDraw.x, this.m_rcDraw.y, this.m_rcDraw.width, this.m_rcDraw.height);
  266.       var11.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  267.    }
  268.  
  269.    void Reveal() {
  270.       Graphics var1 = Globals.thePresView.GetDC();
  271.       var1.clipRect(this.m_rcDraw.x, this.m_rcDraw.y, this.m_rcDraw.width, this.m_rcDraw.height);
  272.       var1.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  273.    }
  274.  
  275.    void OpenOutVert() {
  276.       int var1 = this.m_rcDraw.height / 2;
  277.       int var3 = var1;
  278.       int var4 = 0;
  279.       Graphics var7 = Globals.thePresView.GetDC();
  280.  
  281.       do {
  282.          long var5 = System.currentTimeMillis() + (long)this.m_EffectData.m_cSpeed;
  283.          int var2 = Math.min(var3, this.m_EffectData.m_cStepWidth);
  284.          if (var2 > 0) {
  285.             var3 -= var2;
  286.             Graphics var8 = var7.create();
  287.             var8.clipRect(this.m_rcDraw.x, this.m_rcDraw.y + var3, this.m_rcDraw.width, var2);
  288.             var8.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  289.          }
  290.  
  291.          var2 = Math.min(this.m_rcDraw.height - var1 - var4, this.m_EffectData.m_cStepWidth);
  292.          if (var2 > 0) {
  293.             Graphics var11 = var7.create();
  294.             var11.clipRect(this.m_rcDraw.x, this.m_rcDraw.y + var1 + var4, this.m_rcDraw.width, var2);
  295.             var11.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  296.             var4 += var2;
  297.          }
  298.  
  299.          try {
  300.             Thread.sleep(Math.max(0L, var5 - System.currentTimeMillis()));
  301.          } catch (InterruptedException var9) {
  302.             break;
  303.          }
  304.       } while(var3 > 0 && var4 < this.m_rcDraw.height - var1);
  305.  
  306.       Graphics var12 = var7.create();
  307.       var12.clipRect(this.m_rcDraw.x, this.m_rcDraw.y, this.m_rcDraw.width, this.m_rcDraw.height);
  308.       var12.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  309.    }
  310.  
  311.    void CloseInHoriz() {
  312.       int var1 = this.m_rcDraw.width / 2;
  313.       int var3 = 0;
  314.       int var4 = this.m_rcDraw.width - var1;
  315.       Graphics var7 = Globals.thePresView.GetDC();
  316.  
  317.       do {
  318.          long var5 = System.currentTimeMillis() + (long)this.m_EffectData.m_cSpeed;
  319.          int var2 = Math.min(var1 - var3, this.m_EffectData.m_cStepWidth);
  320.          if (var2 > 0) {
  321.             Graphics var8 = var7.create();
  322.             var8.clipRect(this.m_rcDraw.x + var3, this.m_rcDraw.y, var2, this.m_rcDraw.height);
  323.             var8.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  324.             var3 += var2;
  325.          }
  326.  
  327.          var2 = Math.min(var4, this.m_EffectData.m_cStepWidth);
  328.          if (var2 > 0) {
  329.             var4 -= var2;
  330.             Graphics var11 = var7.create();
  331.             var11.clipRect(this.m_rcDraw.x + var1 + var4, this.m_rcDraw.y, var2, this.m_rcDraw.height);
  332.             var11.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  333.          }
  334.  
  335.          try {
  336.             Thread.sleep(Math.max(0L, var5 - System.currentTimeMillis()));
  337.          } catch (InterruptedException var9) {
  338.             this.stop();
  339.             break;
  340.          }
  341.       } while(var3 < var1 && var4 > 0);
  342.  
  343.       Graphics var12 = var7.create();
  344.       var12.clipRect(this.m_rcDraw.x, this.m_rcDraw.y, this.m_rcDraw.width, this.m_rcDraw.height);
  345.       var12.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  346.    }
  347.  
  348.    void WipeLeftToRight() {
  349.       int var2 = 0;
  350.       Graphics var5 = Globals.thePresView.GetDC();
  351.  
  352.       do {
  353.          long var3 = System.currentTimeMillis() + (long)this.m_EffectData.m_cSpeed;
  354.          int var1 = Math.min(this.m_rcDraw.width - var2, this.m_EffectData.m_cStepWidth);
  355.          Graphics var6 = var5.create();
  356.          var6.clipRect(this.m_rcDraw.x + var2, this.m_rcDraw.y, var1, this.m_rcDraw.height);
  357.          var6.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  358.          var2 += var1;
  359.  
  360.          try {
  361.             Thread.sleep(Math.max(0L, var3 - System.currentTimeMillis()));
  362.          } catch (InterruptedException var7) {
  363.             this.stop();
  364.             break;
  365.          }
  366.       } while(var2 < this.m_rcDraw.width);
  367.  
  368.       Graphics var8 = var5.create();
  369.       var8.clipRect(this.m_rcDraw.x, this.m_rcDraw.y, this.m_rcDraw.width, this.m_rcDraw.height);
  370.       var8.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  371.    }
  372.  
  373.    void WipeTopToBottom() {
  374.       int var2 = 0;
  375.       Graphics var5 = Globals.thePresView.GetDC();
  376.  
  377.       do {
  378.          long var3 = System.currentTimeMillis() + (long)this.m_EffectData.m_cSpeed;
  379.          int var1 = Math.min(this.m_rcDraw.height - var2, this.m_EffectData.m_cStepWidth);
  380.          Graphics var6 = var5.create();
  381.          var6.clipRect(this.m_rcDraw.x, this.m_rcDraw.y + var2, this.m_rcDraw.width, var1);
  382.          var6.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  383.          var2 += var1;
  384.  
  385.          try {
  386.             Thread.sleep(Math.max(0L, var3 - System.currentTimeMillis()));
  387.          } catch (InterruptedException var7) {
  388.             this.stop();
  389.             break;
  390.          }
  391.       } while(var2 < this.m_rcDraw.height);
  392.  
  393.       Graphics var8 = var5.create();
  394.       var8.clipRect(this.m_rcDraw.x, this.m_rcDraw.y, this.m_rcDraw.width, this.m_rcDraw.height);
  395.       var8.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  396.    }
  397.  
  398.    void HorizontalBlinds(int var1) {
  399.       Graphics var5 = Globals.thePresView.GetDC();
  400.       CEffectData var10000 = this.m_EffectData;
  401.       var10000.m_cSpeed = (short)(var10000.m_cSpeed * 2);
  402.       if (var1 < this.m_EffectData.m_cStepWidth * 2) {
  403.          this.m_EffectData.m_cStepWidth = (short)(var1 / 2);
  404.       }
  405.  
  406.       int var6 = this.m_rcDraw.height / var1;
  407.  
  408.       for(int var7 = 0; var7 <= var1; var7 += this.m_EffectData.m_cStepWidth) {
  409.          long var3 = System.currentTimeMillis() + (long)this.m_EffectData.m_cSpeed;
  410.  
  411.          for(int var8 = 0; var8 <= var6; ++var8) {
  412.             int var2 = var8 * var1 + var7 + this.m_rcDraw.y;
  413.             Graphics var9 = var5.create();
  414.             var9.clipRect(this.m_rcDraw.x, var2, this.m_rcDraw.width, this.m_EffectData.m_cStepWidth);
  415.             var9.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  416.          }
  417.  
  418.          try {
  419.             Thread.sleep(Math.max(0L, var3 - System.currentTimeMillis()));
  420.          } catch (InterruptedException var10) {
  421.             break;
  422.          }
  423.       }
  424.  
  425.       Graphics var11 = var5.create();
  426.       var11.clipRect(this.m_rcDraw.x, this.m_rcDraw.y, this.m_rcDraw.width, this.m_rcDraw.height);
  427.       var11.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  428.    }
  429.  
  430.    void PushOut(int var1) {
  431.       long var2 = 0L;
  432.       int var4 = 0;
  433.       int var5 = 0;
  434.       int var6 = 1;
  435.       Graphics var7 = Globals.thePresView.GetDC();
  436.       var7.clipRect(this.m_rcDraw.x, this.m_rcDraw.y, this.m_rcDraw.width, this.m_rcDraw.height);
  437.       CRect var8 = new CRect(this.m_rcDraw.x, this.m_rcDraw.y, this.m_rcDraw.width, this.m_rcDraw.height);
  438.       Point var9 = new Point(-this.m_rcDraw.x, -this.m_rcDraw.y);
  439.       Point var10 = new Point(-this.m_rcDraw.x, -this.m_rcDraw.y);
  440.       switch (var1) {
  441.          case 4:
  442.             var8.x -= this.m_rcDraw.width;
  443.             var8.width *= 2;
  444.             var9.x += this.m_rcDraw.width;
  445.             var4 = this.m_EffectData.m_cStepWidth;
  446.             var6 = this.m_rcDraw.width / this.m_EffectData.m_cStepWidth;
  447.             break;
  448.          case 5:
  449.             var8.width *= 2;
  450.             var10.x += this.m_rcDraw.width;
  451.             var4 = -this.m_EffectData.m_cStepWidth;
  452.             var6 = this.m_rcDraw.width / this.m_EffectData.m_cStepWidth;
  453.             break;
  454.          case 6:
  455.             var8.y -= this.m_rcDraw.height;
  456.             var8.height *= 2;
  457.             var9.y += this.m_rcDraw.height;
  458.             var5 = this.m_EffectData.m_cStepWidth;
  459.             var6 = this.m_rcDraw.height / this.m_EffectData.m_cStepWidth;
  460.             break;
  461.          case 7:
  462.             var8.height *= 2;
  463.             var10.y += this.m_rcDraw.height;
  464.             var5 = -this.m_EffectData.m_cStepWidth;
  465.             var6 = this.m_rcDraw.height / this.m_EffectData.m_cStepWidth;
  466.       }
  467.  
  468.       Image var11 = Globals.thePresView.createImage(var8.width, var8.height);
  469.       Graphics var12 = var11.getGraphics();
  470.       var12.drawImage(Globals.thePresView.m_OffScreenBmp, var9.x, var9.y, (ImageObserver)null);
  471.       Globals.thePresView.Render(this.m_rcDraw);
  472.       var12.clipRect(var10.x + this.m_rcDraw.x, var10.y + this.m_rcDraw.y, this.m_rcDraw.width, this.m_rcDraw.height);
  473.       var12.drawImage(Globals.thePresView.m_OffScreenBmp, var10.x, var10.y, (ImageObserver)null);
  474.  
  475.       for(int var13 = 0; var13 < var6; ++var13) {
  476.          var2 = System.currentTimeMillis() + (long)this.m_EffectData.m_cSpeed;
  477.          var7.drawImage(var11, var8.x, var8.y, (ImageObserver)null);
  478.          var8.x += var4;
  479.          var8.y += var5;
  480.  
  481.          try {
  482.             Thread.sleep(Math.max(0L, var2 - System.currentTimeMillis()));
  483.          } catch (InterruptedException var14) {
  484.             this.stop();
  485.             break;
  486.          }
  487.       }
  488.  
  489.       var7.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  490.    }
  491.  
  492.    public void start() {
  493.       if (this.m_EffectThread == null) {
  494.          this.m_EffectThread = new Thread(this);
  495.          this.m_EffectThread.start();
  496.       }
  497.  
  498.    }
  499.  
  500.    void WipeRightToLeft() {
  501.       int var2 = this.m_rcDraw.width;
  502.       Graphics var5 = Globals.thePresView.GetDC();
  503.  
  504.       do {
  505.          long var3 = System.currentTimeMillis() + (long)this.m_EffectData.m_cSpeed;
  506.          int var1 = Math.min(var2, this.m_EffectData.m_cStepWidth);
  507.          var2 -= var1;
  508.          Graphics var6 = var5.create();
  509.          var6.clipRect(this.m_rcDraw.x + var2, this.m_rcDraw.y, var1, this.m_rcDraw.height);
  510.          var6.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  511.  
  512.          try {
  513.             Thread.sleep(Math.max(0L, var3 - System.currentTimeMillis()));
  514.          } catch (InterruptedException var7) {
  515.             this.stop();
  516.             break;
  517.          }
  518.       } while(var2 > 0);
  519.  
  520.       Graphics var8 = var5.create();
  521.       var8.clipRect(this.m_rcDraw.x, this.m_rcDraw.y, this.m_rcDraw.width, this.m_rcDraw.height);
  522.       var8.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  523.    }
  524.  
  525.    void WipeBottomToTop() {
  526.       int var2 = this.m_rcDraw.height;
  527.       Graphics var5 = Globals.thePresView.GetDC();
  528.  
  529.       do {
  530.          long var3 = System.currentTimeMillis() + (long)this.m_EffectData.m_cSpeed;
  531.          int var1 = Math.min(var2, this.m_EffectData.m_cStepWidth);
  532.          var2 -= var1;
  533.          Graphics var6 = var5.create();
  534.          var6.clipRect(this.m_rcDraw.x, this.m_rcDraw.y + var2, this.m_rcDraw.width, var1);
  535.          var6.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  536.  
  537.          try {
  538.             Thread.sleep(Math.max(0L, var3 - System.currentTimeMillis()));
  539.          } catch (InterruptedException var7) {
  540.             this.stop();
  541.             break;
  542.          }
  543.       } while(var2 > 0);
  544.  
  545.       Graphics var8 = var5.create();
  546.       var8.clipRect(this.m_rcDraw.x, this.m_rcDraw.y, this.m_rcDraw.width, this.m_rcDraw.height);
  547.       var8.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  548.    }
  549.  
  550.    void FlyOn(int var1) {
  551.       Point var2 = new Point(0, 0);
  552.       Point var3 = new Point(this.m_rcDraw.x, this.m_rcDraw.y);
  553.       Point var4 = new Point(this.m_rcDraw.x, this.m_rcDraw.y);
  554.       switch (var1) {
  555.          case 0:
  556.             var4.x = -this.m_rcDraw.width;
  557.             var4.y = -this.m_rcDraw.height;
  558.             break;
  559.          case 1:
  560.             var4.x = Globals.thePresView.m_OffScreenBmp.getWidth(Globals.thePresView);
  561.             var4.y = -this.m_rcDraw.height;
  562.             break;
  563.          case 2:
  564.             var4.x = -this.m_rcDraw.width;
  565.             var4.y = Globals.thePresView.m_OffScreenBmp.getHeight(Globals.thePresView);
  566.             break;
  567.          case 3:
  568.             var4.x = Globals.thePresView.m_OffScreenBmp.getWidth(Globals.thePresView);
  569.             var4.y = Globals.thePresView.m_OffScreenBmp.getHeight(Globals.thePresView);
  570.             break;
  571.          case 4:
  572.             var4.x = -this.m_rcDraw.width;
  573.             break;
  574.          case 5:
  575.             var4.x = Globals.thePresView.m_OffScreenBmp.getWidth(Globals.thePresView);
  576.             break;
  577.          case 6:
  578.             var4.y = -this.m_rcDraw.height;
  579.             break;
  580.          case 7:
  581.             var4.y = Globals.thePresView.m_OffScreenBmp.getHeight(Globals.thePresView);
  582.       }
  583.  
  584.       int var7 = 0;
  585.  
  586.       while(!var2.equals(var3)) {
  587.          var2 = Utils.GetPtBetweenPts(var7, var4, var3);
  588.          long var5 = System.currentTimeMillis() + (long)this.m_EffectData.m_cSpeed;
  589.          var7 += this.m_EffectData.m_cStepWidth;
  590.          this.m_DrawObj.MoveTo(var2, true, true);
  591.  
  592.          try {
  593.             Thread.sleep(Math.max(0L, var5 - System.currentTimeMillis()));
  594.          } catch (InterruptedException var8) {
  595.             this.stop();
  596.             return;
  597.          }
  598.       }
  599.  
  600.    }
  601.  
  602.    public void run() {
  603.       this.DoEffect();
  604.    }
  605.  
  606.    CEffectThread(CIconObject var1, CRect var2) {
  607.       this.m_rcDraw = var2;
  608.       this.m_DrawObj = Globals.thePresView.m_DrawObjectList.FindObject(var1);
  609.       this.m_IconObj = var1;
  610.       this.m_EffectData = this.m_IconObj.GetEffectData();
  611.       this.m_EffectThread = null;
  612.    }
  613.  
  614.    void SpiralOut() {
  615.       Graphics var3 = Globals.thePresView.GetDC();
  616.       int var4 = this.m_rcDraw.height / 2;
  617.       int var5 = this.m_rcDraw.width / 2;
  618.       int var6 = 0;
  619.  
  620.       for(int var7 = 0; var6 <= var5 || var7 <= var4; var7 += this.m_EffectData.m_cStepWidth) {
  621.          long var1 = System.currentTimeMillis() + (long)this.m_EffectData.m_cSpeed;
  622.          if (var7 > var4) {
  623.             var7 = var4;
  624.          }
  625.  
  626.          if (var6 > var5) {
  627.             var6 = var5;
  628.          }
  629.  
  630.          if (var7 <= var4) {
  631.             Graphics var8 = var3.create();
  632.             var8.clipRect(this.m_rcDraw.x + var5 - var6, this.m_rcDraw.y + var4 - var7, var6 * 2, this.m_EffectData.m_cStepWidth);
  633.             var8.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  634.          }
  635.  
  636.          if (var7 <= var4) {
  637.             Graphics var11 = var3.create();
  638.             var11.clipRect(this.m_rcDraw.x + var5 - var6, this.m_rcDraw.y + var4 + var7 - this.m_EffectData.m_cStepWidth, var6 * 2, this.m_EffectData.m_cStepWidth);
  639.             var11.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  640.          }
  641.  
  642.          if (var6 <= var5) {
  643.             Graphics var12 = var3.create();
  644.             var12.clipRect(this.m_rcDraw.x + var5 - var6, this.m_rcDraw.y + var4 - var7, this.m_EffectData.m_cStepWidth, var7 * 2);
  645.             var12.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  646.          }
  647.  
  648.          if (var6 <= var5) {
  649.             Graphics var13 = var3.create();
  650.             var13.clipRect(this.m_rcDraw.x + var5 + var6 - this.m_EffectData.m_cStepWidth, this.m_rcDraw.y + var4 - var7, this.m_EffectData.m_cStepWidth, var7 * 2);
  651.             var13.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  652.          }
  653.  
  654.          try {
  655.             Thread.sleep(Math.max(0L, var1 - System.currentTimeMillis()));
  656.          } catch (InterruptedException var9) {
  657.             break;
  658.          }
  659.  
  660.          var6 += this.m_EffectData.m_cStepWidth;
  661.       }
  662.  
  663.       Graphics var10 = var3.create();
  664.       var10.clipRect(this.m_rcDraw.x, this.m_rcDraw.y, this.m_rcDraw.width, this.m_rcDraw.height);
  665.       var10.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  666.    }
  667.  
  668.    void CloseInVert() {
  669.       int var1 = this.m_rcDraw.height / 2;
  670.       int var3 = 0;
  671.       int var4 = this.m_rcDraw.height - var1;
  672.       Graphics var7 = Globals.thePresView.GetDC();
  673.  
  674.       do {
  675.          long var5 = System.currentTimeMillis() + (long)this.m_EffectData.m_cSpeed;
  676.          int var2 = Math.min(var1 - var3, this.m_EffectData.m_cStepWidth);
  677.          if (var2 > 0) {
  678.             Graphics var8 = var7.create();
  679.             var8.clipRect(this.m_rcDraw.x, this.m_rcDraw.y + var3, this.m_rcDraw.width, var2);
  680.             var8.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  681.             var3 += var2;
  682.          }
  683.  
  684.          var2 = Math.min(var4, this.m_EffectData.m_cStepWidth);
  685.          if (var2 > 0) {
  686.             var4 -= var2;
  687.             Graphics var11 = var7.create();
  688.             var11.clipRect(this.m_rcDraw.x, this.m_rcDraw.y + var1 + var4, this.m_rcDraw.width, var2);
  689.             var11.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  690.          }
  691.  
  692.          try {
  693.             Thread.sleep(Math.max(0L, var5 - System.currentTimeMillis()));
  694.          } catch (InterruptedException var9) {
  695.             this.stop();
  696.             break;
  697.          }
  698.       } while(var3 < var1 && var4 > 0);
  699.  
  700.       Graphics var12 = var7.create();
  701.       var12.clipRect(this.m_rcDraw.x, this.m_rcDraw.y, this.m_rcDraw.width, this.m_rcDraw.height);
  702.       var12.drawImage(Globals.thePresView.m_OffScreenBmp, 0, 0, (ImageObserver)null);
  703.    }
  704.  
  705.    void DoPushEffect() {
  706.       switch (this.m_EffectData.m_cEffect) {
  707.          case 0:
  708.             this.PushOut(4);
  709.             return;
  710.          case 1:
  711.             this.PushOut(5);
  712.             return;
  713.          case 2:
  714.             this.PushOut(6);
  715.             return;
  716.          case 3:
  717.             this.PushOut(7);
  718.             return;
  719.          default:
  720.             System.out.println("ERROR: Illegal transition effect requested");
  721.             this.Reveal();
  722.       }
  723.    }
  724. }
  725.